package oop.more;

public class Application {

    public static void main(String[] args) {
        //一个对象的实际类型是确定的

        //可以指向的引用类型不确定了

        Student s1 = new Student();
        Person s2 = new Student();
        Object s3 = new Student();

        s2.run();
        s1.run();
        /*
        多态注意事项：
        1.多态是方法的多态，没有属性多态
        2.父类和子类，有联系
        3.存在条件，继承关系和方法重写
        4.父类引用，指向子类对象
         */

        //Object > Person > Student
        Object object = new Student();
        System.out.println(object instanceof Student);
        System.out.println(object instanceof Person);
        System.out.println(object instanceof Object);
        System.out.println(object instanceof Teacher);
        System.out.println(object instanceof String);

        //引用类型之间的转换
        Person student = new Student();
        //student.go();
        ((Student)student).go();
        /*
        1.父类转换为子类，向下转型，强制转换
        2.子类转换为父类，向上转型
        3.方便方法调用，减少重复代码，提高代码利用率
         */
    }
}
